home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / util / time / backclock.lha / backclock / sources / style / choice.c next >
Encoding:
C/C++ Source or Header  |  1999-06-22  |  5.2 KB  |  192 lines

  1. /*********************************************/
  2. /*                                           */
  3. /*       Designer (C) Ian OConnor 1994       */
  4. /*                                           */
  5. /*      Designer Produced C include file     */
  6. /*                                           */
  7. /*********************************************/
  8.  
  9. #include <exec/types.h>
  10. #include <exec/memory.h>
  11. #include <dos/dosextens.h>
  12. #include <intuition/screens.h>
  13. #include <intuition/intuition.h>
  14. #include <intuition/gadgetclass.h>
  15. #include <libraries/gadtools.h>
  16. #include <diskfont/diskfont.h>
  17. #include <utility/utility.h>
  18. #include <graphics/gfxbase.h>
  19. #include <workbench/workbench.h>
  20. #include <graphics/scale.h>
  21. #include <clib/exec_protos.h>
  22. #include <clib/wb_protos.h>
  23. #include <clib/intuition_protos.h>
  24. #include <clib/gadtools_protos.h>
  25. #include <clib/graphics_protos.h>
  26. #include <clib/utility_protos.h>
  27. #include <string.h>
  28. #include <clib/diskfont_protos.h>
  29.  
  30. #include "choice.h"
  31.  
  32.  
  33. struct Window *CH1 = NULL;
  34. APTR CH1VisualInfo;
  35. APTR CH1DrawInfo;
  36. struct Gadget *CH1GList;
  37. struct Gadget *CH1Gadgets[3];
  38. UBYTE CH1FirstRun = 0;
  39.  
  40. STRPTR CH1_MX0Labels[] =
  41. {
  42.   (STRPTR)"Seconds",
  43.   (STRPTR)"Minutes",
  44.   (STRPTR)"Hours",
  45.   NULL
  46. };
  47.  
  48. ULONG CH1GadgetTags[] =
  49.   {
  50.   (GTMX_Spacing), 5,
  51.   (GT_TagBase+69), TRUE,  /* MX scaling under V39 */
  52.   (GT_TagBase+71), 4, /* placetext in V39 */
  53.   (GTMX_Labels), (ULONG)&CH1_MX0Labels[0],
  54.   (TAG_END),
  55.   };
  56.  
  57. UWORD CH1GadgetTypes[] =
  58.   {
  59.   MX_KIND,
  60.   BUTTON_KIND,
  61.   BUTTON_KIND,
  62.   };
  63.  
  64. struct NewGadget CH1NewGadgets[] =
  65.   {
  66.   112, 40, 17, 9, (UBYTE *)"Save as", NULL, CH1_MX0, 2, NULL,  (APTR)&CH1GadgetTags[0],
  67.   29, 109, 99, 26, (UBYTE *)"Save", NULL, CH1_BUT1, 16, NULL,  NULL,
  68.   178, 109, 99, 26, (UBYTE *)"Cancel", NULL, CH1_BUT2, 16, NULL,  NULL,
  69.   };
  70. UWORD CH1ZoomInfo[4] = { 200, 0, 200, 25 };
  71.  
  72. void RendWindowCH1( struct Window *Win, void *vi )
  73. {
  74. UWORD offx = Win->BorderLeft;
  75. UWORD offy = Win->BorderTop;
  76. ULONG scalex = 65535*Win->WScreen->RastPort.Font->tf_XSize/8;
  77. ULONG scaley = 65535*Win->WScreen->RastPort.Font->tf_YSize/15;
  78. if (Win != NULL) 
  79.   {
  80.   }
  81. }
  82.  
  83. int OpenWindowCH1( void )
  84. {
  85. struct Screen *Scr;
  86. UWORD offx, offy;
  87. UWORD loop;
  88. struct NewGadget newgad;
  89. struct Gadget *Gad;
  90. struct Gadget *Gad2;
  91. APTR Cla;
  92. ULONG scalex,scaley;
  93. if (CH1FirstRun == 0)
  94.   {
  95.   CH1FirstRun = 1;
  96.   }
  97. if (CH1 == NULL)
  98.   {
  99.   Scr = LockPubScreen(NULL);
  100.   if (NULL != Scr)
  101.     {
  102.     offx = Scr->WBorLeft;
  103.     offy = Scr->WBorTop + Scr->Font->ta_YSize+1;
  104.     scalex = 65535*Scr->RastPort.Font->tf_XSize/8;
  105.     scaley = 65535*Scr->RastPort.Font->tf_YSize/15;
  106.     if (NULL != ( CH1VisualInfo = GetVisualInfoA( Scr, NULL)))
  107.       {
  108.       if (NULL != ( CH1DrawInfo = GetScreenDrawInfo( Scr)))
  109.         {
  110.         CH1GList = NULL;
  111.         Gad = CreateContext( &CH1GList);
  112.         for ( loop=0 ; loop<3 ; loop++ ) {
  113.           if (CH1GadgetTypes[loop] != 198)
  114.             {
  115.             CopyMem((char * )&CH1NewGadgets[loop], ( char * )&newgad, (long)sizeof( struct NewGadget ));
  116.             newgad.ng_VisualInfo = CH1VisualInfo;
  117.             newgad.ng_LeftEdge = newgad.ng_LeftEdge*scalex/65535;
  118.             newgad.ng_TopEdge = newgad.ng_TopEdge*scaley/65535;
  119.             if (CH1GadgetTypes[loop] != GENERIC_KIND)
  120.               {
  121.               newgad.ng_Width = newgad.ng_Width*scalex/65535;
  122.               newgad.ng_Height = newgad.ng_Height*scaley/65535;
  123.               };
  124.             newgad.ng_TextAttr = Scr->Font;
  125.             newgad.ng_LeftEdge += offx;
  126.             newgad.ng_TopEdge += offy;
  127.             CH1Gadgets[ loop ] = NULL;
  128.             CH1Gadgets[ newgad.ng_GadgetID - CH1FirstID ] = Gad = CreateGadgetA( CH1GadgetTypes[loop], Gad, &newgad, newgad.ng_UserData );
  129.             }
  130.         }
  131.         if (Gad != NULL)
  132.           {
  133.           if (NULL != (CH1 = OpenWindowTags( NULL, (WA_Left), 300,
  134.                   (WA_Top), 184,
  135.                   (WA_Width), 300*scalex/65535+offx,
  136.                   (WA_Height), 150*scaley/65535+offy,
  137.                   (WA_Title), "Arrow type",
  138.                   (WA_MinWidth), 150,
  139.                   (WA_MinHeight), 25,
  140.                   (WA_MaxWidth), 1200,
  141.                   (WA_MaxHeight), 1200,
  142.                   (WA_DragBar), TRUE,
  143.                   (WA_DepthGadget), TRUE,
  144.                   (WA_CloseGadget), TRUE,
  145.                   (WA_Activate), TRUE,
  146.                   (WA_RMBTrap), TRUE,
  147.                   (WA_Dummy+0x30), TRUE,
  148.                   (WA_SmartRefresh), TRUE,
  149.                   (WA_AutoAdjust), TRUE,
  150.                   (WA_Gadgets), CH1GList,
  151.                   (WA_Zoom), CH1ZoomInfo,
  152.                   (WA_IDCMP),612,
  153.                   (TAG_END))))
  154.             {
  155.             RendWindowCH1(CH1, CH1VisualInfo );
  156.             GT_RefreshWindow( CH1, NULL);
  157.             RefreshGList( CH1GList, CH1, NULL, ~0);
  158.             UnlockPubScreen( NULL, Scr);
  159.             return( 0L );
  160.             }
  161.           }
  162.         FreeGadgets( CH1GList);
  163.         FreeScreenDrawInfo( Scr, CH1DrawInfo );
  164.         }
  165.       FreeVisualInfo( CH1VisualInfo );
  166.       }
  167.     UnlockPubScreen( NULL, Scr);
  168.     }
  169.   }
  170. else
  171.   {
  172.   WindowToFront(CH1);
  173.   ActivateWindow(CH1);
  174.   return( 0L );
  175.   }
  176. return( 1L );
  177. }
  178.  
  179. void CloseWindowCH1( void )
  180. {
  181. if (CH1 != NULL)
  182.   {
  183.   FreeScreenDrawInfo( CH1->WScreen, CH1DrawInfo );
  184.   CH1DrawInfo = NULL;
  185.   CloseWindow( CH1);
  186.   CH1 = NULL;
  187.   FreeVisualInfo( CH1VisualInfo);
  188.   FreeGadgets( CH1GList);
  189.   }
  190. }
  191.  
  192.